perm filename WARREN.TXT[PAT,LMM]1 blob sn#056023 filedate 1973-08-28 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→TO DO:
C00011 ENDMK
C⊗;
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→TO DO:

1. FUTURE - LOOKUP LAST AND MEMB SO USER CAN MAKE FAST DECLARATION.
6.  LOOK UP RPLACA AND RPLACD SO USER CAN DECLARE FOR FRPLACA AND
/RPLACA, ETC.  IF YOU WANT TO INSTALL LOOKUP NOW, DO 

(CLISPLOOKUP FN-NAME NIL NIL (GETP FN-NAME 'LISPFN)),

OR TO BE MORE EFFICIENT, SINCE MOST FUNCTIONS WONT HAVE THEIR OWN
DECLARATIONS, INCLUDE THE CODE FROM THE FUNCTION CLISPLOOKUP (WHICH
IS CONTAINED IN THE FILE CLISP) INYOUR OWN BLOCK. CLISPLOOKUP0 IS
OUTSIDE OF THE DWIMBLOCK SINCE IT IS ONLY CALLED WHEN A FULL LOOKUP
HAS TO BE DONE.  IN MOST CASES,  THE SIMPLE FUNCTION SHOWN IN
CLISPLOOKUP WILL SUFFICE.


2. USE ASSOC WHERE POSSIBLE, AND LOOK IT UP ALSO SO USER CANUSE
FASSOC.

3. INSTALL A FLAG OR NEW E.P. (ELEMENTARY PATTERN) CORRESPONDING TO
$ THAT DOES NOT CONTINUE SEARCHING ONCE IT SUCCEEDS (FUZZY CONCEPT),
E.G. ($ ('A $2) $) WOULD BE AN ASSOC WITH A CHECK ON THE LENGTH OF
THE EEMENT,  BUT WOULD NOT CONTINUE SEARCHING FOR ANOTHER 'A,
SIMILARLY ($ 'A 'B $) WOULD BE (EQ (CADR (MEMB 'A X) 'B)). I THINK
THE DEFAULT FOR $ SHOULD BE THIS WAY,  AND THAT SOMETHNG LIKE $$
WOULD MEAN SEARCH YOUR ASS OFF.

7. CHANGE THE INITIAL VARIABLE DEFAULT TO = AND POSTPONE-SETQ-FLG TO
NIL,  I.E. DONT POSTPONE.

8. MAKE SURE THAT POSTPONE SETQ FLG REALLY WORKS. FOR EXAMPLE IN THE
PATTERN (A←($ !B←'FOO ($ !==C))), IF POSTPONESETQFLG IS NIL,  THEN
THERE IS NO NEED FOR DUMMY VARIABLES NOR FOR A PROG,  I.E. YOU CAN
USE THE VARIABLES MENTIONED IN THE PATTERN FOR STORING TEMORARY
RESULTS.

9. X:($1 *←!(3 4) 5) CAN YOU IMPROVE THE DIAGNOSTIC SO AS NOT TO BE
SO SCARY? ALSO WHY ARE 3 AND 4 QUOTED AND 5 DEFAUTED (ACTUALLY 3 4
AND 5 SHOULD BE LEFT AAONE SINCE THEY ARE NUMBERS, BUT I PRESUME IF
THEY HAD BEEN LITATOMS THE SAME WOULD HOLD)

10. WHY DOES X:($ !X←(3 4) $) GO TO A PROG, BUT X:($ X←(3 4) $) TO A
SOME?

12. *****WRONG - X:($ !(A B) C D) ALSO X:($ !($1 $2) $3) X:($ !(A B)
C D $)

13. LOOK AT X:($ Z $) WITH DEFAULT FOR ASSIGNMENT. I DONT UNDERSTAND
THE SOME WITH (LAMBDA (X) T)

14. X:($ 'A !* $1) COULD BE BETTER.

15. IN YOUR WRITEUP, DID YOU MEAN THAT !  WORKS ON ALL PATTERNS THAT
APPEAR AS THE LAST ELEMENT, BUT ONLY !* AND !(SUBPATTERN) WORK IN
THE INTERIOR? I THINK THIS IS WHAT YOU MEAN, I.E. != OR !== IS OK AS
THE LAST E.P.  ALTHOUGH YOU SAY ONLY !* AND !(SUBPATTERN) ARE
IMPLEMENTED.

16. I GUESS YOU KNOW THAT ($ X←!(PATTERN) $) DOESNT WORK.

18. ($1 Y←$3 $1) DOESNT WORK. I THINK THIS IS REALLY A CASE OF A
HIDDEN ! IN THE MIDDLE, BUT IT ISNT EXPLAINED IN THE WRITEUP, AND I
EITHER HAVE TO EXPLAIN IT OR ELSE IT HAS TO WORK.

19. ****WRONG ($1 'C Y←$1 $) DOESNT DO CDDR CHECK.

21. ($ ! 'A) SHOULD BE (EQ (CDR (LAST --)) NOT (AND (SETQ --) (EQ
--)) I WOULD LIKE TO SEE YOU TRY HARD TO AVOIDE UNNECESSARY PROGS
AND DUMMY VARIABLES.

23. ALSO INSTALLING AN (AND) AND (OR) + AND | I.E. ONE MIGHT SAY

 =X|=Y , =X(OR)=Y , ¬=X(AND)¬=Y , ETC.

I MENTION THESE BECAUSE IN LOOKING THROUGH MY LISTINGS FOR AN
EXAMPLE TO USE IN MY PAPER, I WAS MOST OFTEN FRUSTRATED BECAUSE WE
DID NOT HAVE ¬, &, OR |.

→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→WHAT DOES THIS MEAN?

4. CHECK AND SEE WHERE EXTRA SPACES MAKE A DIFFERENCE. IN PARTICULAR
($ = = X $) AND ($ == X $) ARE NOT EQUIVALENT. THIS SHOULD BE FIXED.


→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→DONE

5.  DONT QUOTE NUMBERS. EVEN IF DEFAULT IS FOR QUOTE OR ASSIGNMENT,
NUMBERS SHULD ALWAYS GO IN AS JUST NUMBERS.

11. X:($1 !X←$1 $2) DONT NEED THE EXTRA T, ALSO FOR X:($ !X←... $)
IN GENERAL, THERE ARE MAAY CASES WHERE YOU ALREADY KNOW THAT THE
RESULT OF THE SETQ IS NON NIL, SO YOU DONT HAVE TO PUT IN THAT T ATT
THE END.

20. USE NULL FOR NOT IN TRANSLATION WHEN WHAT IS MEAAT IS EQ NIL.
I.E. FOR ALL CASES IN THE CURENT CONFIGURATION..

22. THINK ABOUT INSTALLING A ¬ NOT PATTERN- I.E. TILDE, E.G. ¬=FOO,
¬&@NUMBERP, ETC.

→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→NOT GOING TO DO

17. ($1 'A $ 'B) GOES TO (AND (EQ --) (EQ (CAR (LAST (CDDR X)) 'B) I
THINK ON LAST'S, YOU MIGHT AS WELL JUST SAY (LAST X) AS (LAST (CDDR
X)) - I UNDERSTAND THAT IN THE CASE OF MEMBS IT MAKES A DIFFERENT,
E.G. ($1 'A $ 'B $),  YOU WOULD WANT TO SAY (MEMB 'B (CDDR X)) SINCE
THE FIRST ELEMENT MIGHT BE B.